From 8ad0abb867dd326d3436f484588eaf70e0634435 Mon Sep 17 00:00:00 2001 From: Tommi Komulainen Date: Mon, 10 Oct 2005 14:29:03 +0000 Subject: [PATCH] Add ALREADY_EXISTS error code. Return an error code when the shortcut 2005-10-10 Tommi Komulainen * gtk/gtkfilechooser.h (GtkFileChooserError): Add ALREADY_EXISTS error code. * gtk/gtkfilechooserdefault.c (gtk_file_chooser_default_add_shortcut_folder): Return an error code when the shortcut already exists in the sidebar. (#147521) --- ChangeLog | 8 ++++++++ ChangeLog.pre-2-10 | 8 ++++++++ gtk/gtkfilechooser.h | 3 ++- gtk/gtkfilechooserdefault.c | 17 +++++++++++++++++ 4 files changed, 35 insertions(+), 1 deletion(-) diff --git a/ChangeLog b/ChangeLog index d6e42d5d40..f3d469d9ce 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,11 @@ +2005-10-10 Tommi Komulainen + + * gtk/gtkfilechooser.h (GtkFileChooserError): Add ALREADY_EXISTS error + code. + * gtk/gtkfilechooserdefault.c + (gtk_file_chooser_default_add_shortcut_folder): Return an error code + when the shortcut already exists in the sidebar. (#147521) + 2005-10-09 Matthias Clasen * tests/testcombo.c: Demonstrate how to use custom widgets in diff --git a/ChangeLog.pre-2-10 b/ChangeLog.pre-2-10 index d6e42d5d40..f3d469d9ce 100644 --- a/ChangeLog.pre-2-10 +++ b/ChangeLog.pre-2-10 @@ -1,3 +1,11 @@ +2005-10-10 Tommi Komulainen + + * gtk/gtkfilechooser.h (GtkFileChooserError): Add ALREADY_EXISTS error + code. + * gtk/gtkfilechooserdefault.c + (gtk_file_chooser_default_add_shortcut_folder): Return an error code + when the shortcut already exists in the sidebar. (#147521) + 2005-10-09 Matthias Clasen * tests/testcombo.c: Demonstrate how to use custom widgets in diff --git a/gtk/gtkfilechooser.h b/gtk/gtkfilechooser.h index 9148fa670b..5b233878b3 100644 --- a/gtk/gtkfilechooser.h +++ b/gtk/gtkfilechooser.h @@ -55,7 +55,8 @@ GType gtk_file_chooser_get_type (void) G_GNUC_CONST; typedef enum { GTK_FILE_CHOOSER_ERROR_NONEXISTENT, - GTK_FILE_CHOOSER_ERROR_BAD_FILENAME + GTK_FILE_CHOOSER_ERROR_BAD_FILENAME, + GTK_FILE_CHOOSER_ERROR_ALREADY_EXISTS } GtkFileChooserError; GQuark gtk_file_chooser_error_quark (void); diff --git a/gtk/gtkfilechooserdefault.c b/gtk/gtkfilechooserdefault.c index 8ef9aaf3f6..dc1649462b 100644 --- a/gtk/gtkfilechooserdefault.c +++ b/gtk/gtkfilechooserdefault.c @@ -5846,6 +5846,23 @@ gtk_file_chooser_default_add_shortcut_folder (GtkFileChooser *chooser, if (!check_is_folder (impl->file_system, path, error)) return FALSE; + /* Avoid adding duplicates */ + pos = shortcut_find_position (impl, path); + if (pos >= 0 && pos < shortcuts_get_index (impl, SHORTCUTS_BOOKMARKS_SEPARATOR)) + { + gchar *uri; + + uri = gtk_file_system_path_to_uri (impl->file_system, path); + g_set_error (error, + GTK_FILE_CHOOSER_ERROR, + GTK_FILE_CHOOSER_ERROR_ALREADY_EXISTS, + _("shortcut %s already exists"), + uri); + g_free (uri); + + return FALSE; + } + pos = shortcuts_get_pos_for_shortcut_folder (impl, impl->num_shortcuts); result = shortcuts_insert_path (impl, pos, FALSE, NULL, path, NULL, FALSE, error); -- 2.30.2